import config from "../common/config.js"
import store from "../common/store.js"
let request = {
	//	开发者服务器接口地址
	url: config.host + "/api/",
	//	请求的参数
	data: {},
	//	设置请求的 header，header 中不能设置 Referer。
	header: {},
	//	（需大写）有效值：OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT	
	method: "POST",
	//	json	如果设为json，会尝试对返回的数据做一次 JSON.parse	
	dataType: "json",
	//	text	设置响应的数据类型。合法值：text、arraybuffer	1.7.0
	responseType: "text",
	//	收到开发者服务成功返回的回调函数
	success() {},
	//	接口调用失败的回调函数	
	fail() {},
	//	接口调用结束的回调函数（调用成功、失败都会执行）
	complete() {},
}
export default ($option) => {
	let loginInfo = uni.getStorageSync('loginInfo')
	request.header.token = loginInfo.token
	$option.url = request.url + $option.url
	return new Promise((resolve,reject) => {
		request.complete = (response) => {
			if (response.statusCode === 200) {
				if (response.data.status === 200 || response.data.code === 200) {
					resolve(response.data)
				}else {
					error().then(() => {
						reject(response.data)
					})
				}
			}
		}
		uni.request(Object.assign({},request, $option))
	})
}


async function error (code) {
	switch (code){
		case 1401:
		uni.showModal({
			title: '温馨提示',
			content: '您未开通VIP,开通VIP可享更多特权!',
			cancelText: '暂不开通',
			confirmText: '立即开通',
			success: function (res) {
				if (res.confirm) {
					uni.navigateTo({
						url: '/pages_a/my/vip/member'
					})
					uni.hideToast();
				} else if (res.cancel) {
					uni.navigateBack()
					uni.hideToast();
				}
			}
		})
		Promise.reject()
			break;
		case 999:
		uni.showModal({
			title: '温馨提示',
			content: '检测到您还未登录，是否前往登录',
			cancelText: '暂不',
			confirmText: '登录',
			success: function (res) {
				if (res.confirm) {
					uni.navigateTo({
						url: '/pages_a/login/index'
					})
					uni.hideToast();
				} else if (res.cancel) {
					uni.navigateBack()
					uni.hideToast();
				}
			}
		})
		Promise.reject()
			break;
		default:
		return
			break;
	}
}